export const remove = (arr, val) => {
  for (var i = 0; i < arr.length; i++) {
    if (String(arr[i]) === String(val)) {
      delete arr[i]
    }
  }
  return arr
}

export const date = (phptime) => {
  const now = new Date(phptime * 1000)
  const y = now.getFullYear()
  const m = now.getMonth() + 1
  const d = now.getDate()
  return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d) + ' ' + now.toTimeString().substr(0, 8)
}

export const go = (total, min, max, length) => {
  // 首先要判断是否符合 min 和 max 条件
  if (min * length > total || max * length < total) {
    throw Error(`没法满足最最少 ${min} 最大 ${max} 的条件`)
  }
  const result = []
  let restValue = total
  let restLength = length
  for (let i = 0; i < length - 1; i++) {
    restLength--
    // 这一次要发的数量必须保证剩下的要足最小量
    // 同进要保证剩下的不能大于需要的最大量
    const restMin = restLength * min
    const restMax = restLength * max
    // 可发的量
    const usable = restValue - restMin
    // 最少要发的量
    const minValue = Math.max(min, restValue - restMax)
    // 以 minValue 为最左，max 为中线来进行随机，即随机范围是 (max - minValue) * 2
    // 如果这个范围大于 usable - minValue，取 usable - minValue
    const limit = Math.min(usable - minValue, (max - minValue) * 2)
    // 随机部分加上最少要发的部分就是应该发的，但是如果大于 max，最大取到 max
    result[i] = Math.min(max, minValue + Math.floor(limit * Math.random()))
    restValue -= result[i]
  }
  result[length - 1] = restValue
  return result
}
/**
 * 过滤数组
 * @param {*} id
 * @param {*} arr
 * @param {*} name
 * @param {*} name1
 */
export const array_filter = (id, arr = [], name = 'id', name1 = 'name') => {
  if (arr.length === 0) {
    return false
  }
  const results = arr.find(item => {
    return Number(item[name]) === Number(id)
  })
  if (!results) {
    return false
  }
  return results[name1]
}
